package org.example.erat.parser;

import java.io.File;
import java.io.IOException;
import java.util.Map;

/**
 * 文件解析器接口
 * 用于解析不同类型的文件
 */
public interface FileParser {
    
    /**
     * 解析文件
     * @param file 文件对象
     * @return 解析结果
     * @throws IOException 解析异常
     */
    Map<String, Object> parse(File file) throws IOException;
    
    /**
     * 获取支持的文件类型
     * @return 文件类型
     */
    String getSupportedFileType();
    
    /**
     * 验证文件名是否符合规范
     * @param fileName 文件名
     * @return 是否符合规范
     */
    boolean validateFileName(String fileName);
    
    /**
     * 从文件名中提取信息
     * @param fileName 文件名
     * @return 提取的信息
     */
    Map<String, String> extractInfoFromFileName(String fileName);
}
